home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1997 / MacHack 1997.toast / Hacks / Hacks ’96 / Booting Gallery / Booting Gallery (source) / (Libraries) / Hubauer / FSUtilities / FSUtilities.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-06-22  |  2.4 KB  |  61 lines  |  [TEXT/BROW]

  1. #pragma once
  2. #include <files.h>
  3.  
  4. #ifndef CAT_IS_FOLDER
  5. #define CAT_IS_FOLDER(a)    (((a)->hFileInfo.ioFlAttrib & 0x10) != 0)
  6. #endif
  7.  
  8. #if __cplusplus
  9.  
  10.  
  11. class    FSUtil {
  12.     public:
  13.     
  14.     static pascal Boolean FSpExistsQ(const FSSpec* fs);
  15.     static pascal OSErr    FSpGetCatInfo(const FSSpec*        theThing,CInfoPBPtr    cat);
  16.     static pascal OSErr FSpDeleteItem(const FSSpec*    spec);
  17.     static pascal OSErr    FSpCopyItem(FSSpecPtr sourceItem,FSSpecPtr destItem);
  18.     static pascal OSErr    FSpMoveRenameItem(const FSSpec* sourceItem,const FSSpec* destItem);
  19.     static pascal OSErr    UpdatePutAwayInfo(const FSSpec* theSpec);
  20.     static pascal void    FSpEnsureUniqueName(FSSpecPtr item);
  21.     static pascal OSErr    ResolveFinderAlias(FSSpecPtr aliasFile,Boolean mountVol,Boolean *targetIsFolder,FSSpecPtr result);
  22.     static pascal OSErr    FindSubFolder
  23.                         (
  24.                             short                vRefNum,
  25.                             long                parentDirID,
  26.                             ConstStr255Param    folderName,
  27.                             Boolean                createIfDontExist,
  28.                             long                *folderDirID
  29.                         );
  30.     static pascal Boolean    WritableAccessQ(short refNum);
  31.     static pascal OSErr        MakeTempSpec(FSSpecPtr theResult,short onThisDisk); // can use kOnSystemDisk
  32.     static pascal Boolean    FSpIsFolderQ(const FSSpec* item);
  33.  
  34.     static pascal OSErr        FSSpec2Path(const FSSpec* theFile,StringPtr thePath);
  35.     static pascal OSErr        FreeDiskSpace(short vRefNum,UInt32& outSpace);
  36.     
  37.     // this checks length and truncs, also changes colons to "."
  38.     static pascal void        EnsureLegalFileName(StringPtr ioName);
  39.     
  40.     static pascal Boolean    ValidSystemQ(const FSSpec* suspectSystemFolder);
  41. };
  42.  
  43.  
  44. #else
  45.  
  46. #define FSpGetCatInfo        FSpGetCatInfo__6FSUtil
  47. #define FSpDeleteItem        FSpDeleteItem__6FSUtil
  48. #define FSpCopyItem            FSpCopyItem__6FSUtil
  49. #define FSpMoveRenameItem    FSpMoveRenameItem__6FSUtil
  50. #define UpdatePutAwayInfo    UpdatePutAwayInfo__6FSUtil
  51. #define FSpEnsureUniqueName    FSpEnsureUniqueName__6FSUtil
  52. #define ResolveFinderAlias    ResolveFinderAlias__6FSUtil
  53.  
  54. pascal OSErr    FSpGetCatInfo__6FSUtil(FSSpecPtr object,CInfoPBPtr cat);
  55. pascal OSErr    FSpDeleteItem__6FSUtil(FSSpecPtr item);
  56. pascal OSErr    FSpCopyItem__6FSUtil(FSSpecPtr sourceItem,FSSpecPtr destItem);
  57. pascal OSErr    FSpMoveRenameItem__6FSUtil(FSSpecPtr sourceItem,FSSpecPtr destItem);
  58. pascal OSErr    UpdatePutAwayInfo__6FSUtil(const FSSpec *theSpec);
  59. pascal void        FSpEnsureUniqueName__6FSUtil(FSSpecPtr item);
  60. pascal OSErr    ResolveFinderAlias__6FSUtil(FSSpecPtr aliasFile,Boolean mountVol,Boolean *targetIsFolder,FSSpecPtr result);
  61. #endif